package com.itheima.consumer.config;

import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
import org.springframework.amqp.support.converter.MessageConverter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 消息转换器，默认传的是Object转成JSON形式
 * 1.引入依赖（如果项目中引入了`spring-boot-starter-web`依赖，则无需再次引入`Jackson`依赖。）
 * <dependency>
 * <groupId>com.fasterxml.jackson.dataformat</groupId>
 * <artifactId>jackson-dataformat-xml</artifactId>
 * <version>2.9.10</version>
 * </dependency>
 * 2.在consumer和publisher添加消息转换器
 *
 * @author chenzhihua
 * @Date 2024/5/15
 */
@Configuration
public class MessageConfig {

    /**
     * 通过@bean的方式创建一个队列
     * 启动consumer是默认创建一个队列
     *
     * @return
     */
//    @Bean
//    public Queue createQueue() {
//        return new Queue("object.queue");
//    }


    /**
     * 配置消息转换器 Object->Json
     *
     * @return
     */
    @Bean
    public MessageConverter messageConverter() {
        // 1. 定义一个消息转换器
        Jackson2JsonMessageConverter jackson2JsonMessageConverter = new Jackson2JsonMessageConverter();
        // 2. 配置自动创建消息ID,用于识别不同消息
        jackson2JsonMessageConverter.setCreateMessageIds(true);
        return jackson2JsonMessageConverter;
    }
}
